
package com.ce.pms.custservice.dao;

import java.math.BigDecimal;
import java.util.List;

import com.ce.pms.base.dao.IPmsBaseDao;
import com.ce.pms.custservice.model.AbstractServiceItem;
import com.ce.pms.custservice.model.DispatchFormDO;
import com.ce.pms.custservice.model.FeedbackRecord;
import com.ce.pms.custservice.vo.DispatchFormSearchVO;
import com.ce.pms.custservice.vo.FeedbackSearchVO;
import com.ce.pms.custservice.vo.ServItemSearchVO;
import com.sitechasia.webx.core.support.Page;

/**
 *
 * 	名称: com.ce.pms.custservice.dao.IDispatchFormDao <br>
 * 派工单DAO
 *
 * @author  付湘辉  <br>
 * Created on： 2008-12-15 <br>
 * @author <br>
 * update on： <br>
 * why: <br>
 */
public interface IDispatchFormDao extends IPmsBaseDao<DispatchFormDO> {

	/**
	 * 功能描述: 根据服务费用项目id查询一个服务费用项目。 <br>
	 * @param serviceItemId
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-12-16  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public AbstractServiceItem getAbstractServiceItemById(Long serviceItemId);

	/**
	 * 功能描述: 根据反馈id查询一个派工单反馈。 <br>
	 * @param feedbackRecordId
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-12-16  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public FeedbackRecord getFeedbackRecordById(Long feedbackRecordId);

	/***
	 * 功能描述:  获取派工单编号最大值<br>
	 * @return
	 * Create author:yandawei <br>
	 * Create on:2008-12-17  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	String getMaxDispatchFormCodeFromDB();
	
	/**
	 * 功能描述:查询指定派工单的费用清单金额合计  <br>
	 * @param dispatchFormId
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-12-29  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public BigDecimal getServItemTotalFee(Long dispatchFormId);

	/**
	 * 功能描述:根据派工单ID查询所有服务费用项目   <br>
	 * @param dispatchFormId
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-12-17  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
   public List<AbstractServiceItem> queryServItemListByDFormId(Long dispatchFormId);

 /**
	 * 功能描述:根据派工单ID查询服务费用项目分页列表  <br>
	 * @param dispatchFormId
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-12-17  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
 public Page queryServItemByPage(ServItemSearchVO searchVO);
 /**
    * 功能描述: 根据事件ID查询派工单分页列表，searchVO中封装其余搜索条件 <br>
    * <ul>
    * <li>[0]：派工单id</li>
    * <li>[1]：派工单编号</li>
    * <li>[2]：房号</li>
    * <li>[3]：服务内容</li>
    * <li>[4]：联系人</li>
    * <li>[5]：部门ID</li>
    * <li>[6]：紧急程度名称</li>
    * <li>[7]：开工时间</li>
    * <li>[8]：完工时间</li>
    * <li>[9]：状态</li>
    * <li>[10]：创建人ID</li>
    * <li>[11]：任务id</li>
    * <li>[12]：事件ID</li>
    * <li>[13]：房屋id</li>
    * <li>[14]：详细地址</li>
    * </ul>
    * @param searchVO
    * @return
    *
    * Create author:付湘辉 <br>
    * Create on:2008-12-19  <br>
    * Edit author:  <br>
    * Edit on:    <br>
    * Why:     <br>
    */
   public Page queryDispatchFormEventByPage(DispatchFormSearchVO searchVO);

	/**
	 * 功能描述: 根据派工单id查询派工单反馈。 <br>
	 * @param feedbackRecordId
	 * @return
	 *
	 * Create author:高嵩 <br>
	 * Create on:2008-12-19  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */

//   public Page queryFeedbackRecordByPage(DispatchFormSearchVO searchVO);



	   /**
    * 功能描述: 根据部门ID查询派工单分页列表，searchVO中封装其余搜索条件 <br>
    * <ul>
    * <li>[0]：派工单id</li>
    * <li>[1]：派工单编号</li>
    * <li>[2]：房号</li>
    * <li>[3]：服务内容</li>
    * <li>[4]：联系人</li>
    * <li>[5]：部门ID</li>
    * <li>[6]：紧急程度名称</li>
    * <li>[7]：开工时间</li>
    * <li>[8]：完工时间</li>
    * <li>[9]：状态</li>
    * <li>[10]：创建人ID</li>
    * <li>[11]：任务id</li>
    * <li>[12]：事件ID</li>
    * <li>[13]：房屋id</li>
    * <li>[14]：详细地址</li>
    * </ul>
    * @param searchVO
    * @return
    *
    * Create author:付湘辉 <br>
    * Create on:2008-12-19  <br>
    * Edit author:  <br>
    * Edit on:    <br>
    * Why:     <br>
    */
   public Page queryDispatchFormDeptByPage(DispatchFormSearchVO searchVO);
   
   /**
    * 功能描述:查询反馈分页列表，在搜索VO中封装派工单ID  <br>
    * @param searchVO 搜索VO，
    * @return
    *
    * Create author:付湘辉 <br>
    * Create on:2008-12-22  <br>
    * Edit author:  <br>
    * Edit on:    <br>
    * Why:     <br>
    */
   public Page queryFeedbackRecordByPage(FeedbackSearchVO searchVO);

}
